package org.thread.test03.api.demo10.demo03;

/**
 * 第一：自定义线程类 - 继承 Thread 类
 *
 * @author ZQX
 * @date 2025-03-07
 */
public class MyThread extends Thread {
    public MyThread() {
    }

    /**
     * 注意：在 Thread 中，存在 name 属性，用于表示线程的名称
     *
     * @param name 线程名称
     */
    public MyThread(String name) {
        super(name);
    }

    // 第二：重写 run 方法，实现线程的核心功能 - 正常运行线程（非阻塞线程）
    @Override
    public void run() {
        while (true) {
            System.out.println("执行线程相关的逻辑....");

            // 获取中断标记
            // 情况一：非阻塞线程 - true
            boolean flag = Thread.currentThread().isInterrupted();
            System.out.println("非阻塞线程的中断状态：" + flag);

            try {
                // 情况二：子线程睡眠 1 秒 - 进入阻塞状态 - false
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                System.out.println("睡眠被中断的状态：" +
                        Thread.currentThread().isInterrupted());
            }
        }
    }
}
